SQL UNION ALL Operator என்றால் என்ன?
UNION ALL operator இரண்டு அல்லது அதற்கு மேற்பட்ட SELECT statements-ன் முடிவு-தொகுப்புகளை இணைக்கப் பயன்படுகிறது.
UNION ALL operator ஒவ்வொரு statement-ல் இருந்தும் அனைத்து வரிசைகளையும் உள்ளடக்குகிறது, எந்த நகல்கள் உட்பட.
UNION ALL-க்கான தேவைகள்:
- UNION ALL-ல் உள்ள ஒவ்வொரு SELECT statement-க்கும் ஒரே எண்ணிக்கையிலான நெடுவரிசைகள் இருக்க வேண்டும்
- நெடுவரிசைகளும் ஒத்த தரவு வகைகளைக் கொண்டிருக்க வேண்டும்
- ஒவ்வொரு SELECT statement-ல் உள்ள நெடுவரிசைகளும் ஒரே வரிசையில் இருக்க வேண்டும்
UNION ALL தொடரியல்
SELECT column_name(s) FROM table1
UNION ALL
SELECT column_name(s) FROM table2;
குறிப்பு:
UNION operator இயல்பாக நகல் மதிப்புகளை நீக்குகிறது, ஆனால் UNION ALL நகல் மதிப்புகளை உள்ளடக்குகிறது.
ஆர்ப்பாட்ட தரவுத்தளம்
இந்த பயிற்சியில் நாம் நன்கு அறியப்பட்ட Northwind மாதிரி தரவுத்தளத்தைப் பயன்படுத்துவோம்.
"Customers" அட்டவணையில் இருந்து ஒரு தேர்வு கீழே உள்ளது:
Customers அட்டவணை
+------------+--------------------------------+----------------+-------------------+----------+------------+---------+
| CustomerID | CustomerName | ContactName | Address | City | PostalCode | Country |
+------------+--------------------------------+----------------+-------------------+----------+------------+---------+
| 1 | Alfreds Futterkiste | Maria Anders | Obere Str. 57 | Berlin | 12209 | Germany |
| 2 | Ana Trujillo Emparedados... | Ana Trujillo | Avda. Constitución| México | 05021 | Mexico |
| 3 | Antonio Moreno Taquería | Antonio Moreno | Mataderos 2312 | México | 05023 | Mexico |
+------------+--------------------------------+----------------+-------------------+----------+------------+---------+
மற்றும் "Suppliers" அட்டவணையில் இருந்து ஒரு தேர்வு:
Suppliers அட்டவணை
+------------+-----------------------------+-------------------+-----------------+-------------+------------+---------+
| SupplierID | SupplierName | ContactName | Address | City | PostalCode | Country |
+------------+-----------------------------+-------------------+-----------------+-------------+------------+---------+
| 1 | Exotic Liquid | Charlotte Cooper | 49 Gilbert St. | London | EC1 4SD | UK |
| 2 | New Orleans Cajun Delights | Shelley Burke | P.O. Box 78934 | New Orleans | 70117 | USA |
| 3 | Grandma Kelly's Homestead | Regina Murphy | 707 Oxford Rd. | Ann Arbor | 48104 | USA |
+------------+-----------------------------+-------------------+-----------------+-------------+------------+---------+
SQL UNION ALL உதாரணம்
பின்வரும் SQL statement "Customers" மற்றும் "Suppliers" அட்டவணைகளில் இருந்து நகரங்களை (நகல் மதிப்புகளும் உட்பட) திரும்பப் பெறுகிறது:
உதாரணம்
SELECT City FROM Customers
UNION ALL
SELECT City FROM Suppliers
ORDER BY City;
முடிவு
WHERE உடன் SQL UNION ALL
பின்வரும் SQL statement "Customers" மற்றும் "Suppliers" அட்டவணைகளில் இருந்து ஜெர்மன் நகரங்களை (நகல் மதிப்புகளும் உட்பட) திரும்பப் பெறுகிறது:
உதாரணம்
SELECT City, Country FROM Customers
WHERE Country='Germany'
UNION ALL
SELECT City, Country FROM Suppliers
WHERE Country='Germany'
ORDER BY City;
UNION vs UNION ALL காட்சிப் பிரதிநிதித்துவம்
Customers நகரங்கள்
Suppliers நகரங்கள்
UNION முடிவு
நகல்கள் நீக்கப்பட்டன
UNION ALL முடிவு
அனைத்து நகல்களும் சேர்க்கப்பட்டன
கவனிக்க: UNION தானாகவே நகல் மதிப்புகளை நீக்குகிறது, ஆனால் UNION ALL அனைத்து நகல் மதிப்புகளையும் பாதுகாக்கிறது.
UNION vs UNION ALL ஒப்பீடு
UNION
- நகல் வரிசைகளை தானாகவே நீக்குகிறது
- தனித்த மதிப்புகளை மட்டும் தரும்
- மெதுவாக செயல்படக்கூடும் (தனித்துவத்தை சரிபார்க்கும்)
- தரவு ஒருமைப்பாட்டிற்கு ஏற்றது
- குறைவான வரிசைகளை தரும்
SELECT City FROM Table1
UNION
SELECT City FROM Table2;
UNION ALL
- நகல் வரிசைகளை பாதுகாக்கிறது
- அனைத்து மதிப்புகளையும் தரும்
- வேகமாக செயல்படும் (தனித்துவம் சரிபார்க்கப்படாது)
- முழுமையான தரவிற்கு ஏற்றது
- அதிக வரிசைகளை தரும்
SELECT City FROM Table1
UNION ALL
SELECT City FROM Table2;
செயல்திறன் குறிப்பு:
நகல்கள் தேவையில்லாத சூழ்நிலைகளில் UNION ALL-ஐப் பயன்படுத்தவும், ஏனெனில் இது தனித்துவத்தை சரிபார்க்காமல் இருப்பதால் வேகமாக செயல்படும்.
செயல்திறன் கருத்துகள்
UNION ALL வேகமானது
தனித்துவத்தை சரிபார்க்க தேவையில்லை
-- வேகமானது
SELECT * FROM Table1
UNION ALL
SELECT * FROM Table2;
UNION மெதுவானது
தனித்துவத்தை சரிபார்க்க வேண்டும்
-- மெதுவானது
SELECT * FROM Table1
UNION
SELECT * FROM Table2;
பெரிய தரவுத்தளங்கள்
பெரிய அட்டவணைகளுக்கு UNION ALL பயன்படுத்தவும்
-- பெரிய தரவிற்கு ஏற்றது
SELECT CustomerID FROM LargeTable1
UNION ALL
SELECT CustomerID FROM LargeTable2;
பயன்பாட்டு நிகழ்வுகள்
முழுமையான புள்ளிவிவரங்கள்
அனைத்து நிகழ்வுகளையும் உள்ளடக்கிய புள்ளிவிவர பகுப்பாய்வுக்கு
SELECT 'Customer' AS Type, City
FROM Customers
UNION ALL
SELECT 'Supplier', City
FROM Suppliers;
பதிவு கணக்கீடுகள்
முழுமையான பதிவு எண்ணிக்கைக்கு
SELECT COUNT(*) AS TotalCount
FROM (
SELECT * FROM Table1
UNION ALL
SELECT * FROM Table2
) AS CombinedTable;
தரவு இணைப்பு
பல மூலங்களில் இருந்து தரவை இணைக்க
SELECT ProductName FROM CurrentProducts
UNION ALL
SELECT ProductName FROM ArchivedProducts;